using MediatR;
using S.O.ErrorCode;

namespace S.O.Api.Write.Application.Command.Medical
{
    /// <summary>
    /// 更新挂号记录命令
    /// 支持患者修改挂号信息，如更换医生、调整就诊时间等
    /// </summary>
    public class UpdateRegistrationCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 挂号记录ID
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 号类 (普通号、专家号、急诊号等)
        /// </summary>
        public string? RegistrationType { get; set; }
        
        /// <summary>
        /// 挂单费
        /// </summary>
        public decimal? RegistrationFee { get; set; }
        
        /// <summary>
        /// 其他费用
        /// </summary>
        public decimal? OtherFee { get; set; }
        
        /// <summary>
        /// 科室
        /// </summary>
        public string? Department { get; set; }
        
        /// <summary>
        /// 医师
        /// </summary>
        public string? Doctor { get; set; }
        
        /// <summary>
        /// 就诊日期
        /// </summary>
        public DateTime? VisitDate { get; set; }
        
        /// <summary>
        /// 就诊时段 (上午、下午、晚上)
        /// </summary>
        public string? VisitTimeSlot { get; set; }
        
        /// <summary>
        /// 状态 (待诊、就诊中、已完成、已取消)
        /// </summary>
        public string? Status { get; set; }
    }
}